// 服务器启动之后，用户通过浏览器访问网页，在地址栏上输入地址，对于服务器而言，
// 他根据用户在地址栏输入不同的地址进行不同的处理
// 请求request，发送给服务器，服务器根据不同的request（requestHandlers.js)进行不同的响应response（路由选择）

// 路由router:根据不同的request，调用不同的处理程序，request和response之间的桥梁

// 1.返回首页 
// 4个request
// 把四个不同的pathname识别出来，然后后续处理（在server模块）
// http://localhost:8888/   调用对应的请求处理程序start()，返回一个index.html
// http://localhost:8888/index  调用对应的请求处理程序start()，返回一个index.html
// http://localhost:8888/upload 调用对应的请求处理程序upload()，图片文件上传，服务器完成三个功能，
// 1.文件保存到指定文件夹 2.文件重命名 3.返回一个新的页面   <img src="/show">
// http://localhost:8888/show   调用对应的请求处理程序show(),读图片文件，返回给浏览器


// 这个具体的应用一共建立了4个js文件，模块
// 1.index.js：应用的入口，调用服务器模块的start()函数，启动整个程序的运行
// 2.server.js:服务器模块，start()函数，启动服务器，随时响应浏览器发过来的请求，首先识别请求，之后的工作交给下一个模块做
// 3.router.js:根据不同的请求，调用对应的请求处理程序
// /            requestHandlers.start()
// /index       requestHandlers.start()
// /upload      requestHandlers.upload()
// /show        requestHandlers.show()
// 4.requestHandlers.js:请求处理模块，所有的请求处理程序放在这个模块里
// 三个请求处理程序：
// start():返回首页index.html
// upload():文件上传
// show():显示图片


// /favicon.ico是浏览器默认发的，请求图标
// 2.表单数据上传给服务器接收
// 对于服务器而言，它接收到的是打包之后的数据，服务器要对接收到的数据解析还原
// 文件保存在指定的文件夹下
// 文件重命名

// 3.文件返回给浏览器，/show，图片显示


function route(pathname,handle,request,response){
    if (typeof handle[pathname]==='function') {
        handle[pathname](request,response);
    } else {
        console.log("无效的url，没有对应的请求处理函数被调用！");
        response.writeHead(404,{"Content-Type":"text/html;charset=utf-8"});
        response.write("无效页面！");
        response.end();
    }
}

exports.route=route;